{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "def draw_loss(filepath):\n",
    "    import matplotlib.pyplot as plt\n",
    "    loss_list = list(np.load(filepath))\n",
    "    plt.plot(list(range(1, len(loss_list) + 1)), loss_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ResNet34-cifar10训练\n",
    "```\n",
    "self.optimizer = torch.optim.SGD(self.net.parameters(), lr=0.1, momentum=0.9, weight_decay=5e-4)\n",
    "self.lr_scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(self.optimizer, epochs)\n",
    "```\n",
    "epoch=300\n",
    "\n",
    "batch_size=128\n",
    "\n",
    "单机单卡\n",
    "\n",
    "准确率：95.58%\n",
    "            "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_loss('/home/ubuntu/YZP/gitee/paper-reading/DeepInversion/cache/experimental_data/teacher_loss_300.npy')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 试验-教师网络训练\n",
    "损失函数：交叉熵\n",
    "\n",
    "优化器：SGD(lr = 0.001)\n",
    "lr_schduler = step()\n",
    "\n",
    "epoch：200"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_loss('cache/experimental_data/teacher_loss_250.npy')\n",
    "draw_loss('cache/experimental_data/teacher_loss_400.npy')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实验-1\n",
    "损失函数：$loss = loss_{one-hot}  + loss_{information-entropy} * 5 + loss_{active} * 0.1 + loss_{kd}$\n",
    "\n",
    "生成器优化器：Adam(lr = 0.2)\n",
    "\n",
    "lr_scheduler：CosineAnnealingWarm(T_0 = 5, T_mult = 2)\n",
    "\n",
    "学生网络优化器：Adam(lr = 2e-3)\n",
    "\n",
    "lr_scheduler：CosineAnnealingWarm(T_0 = 5, T_mult = 2\n",
    "\n",
    "epoch = 100\n",
    "\n",
    "oh = 1, ie = 5, a = 0.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD4CAYAAAAEhuazAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAyoklEQVR4nO3deXyU1d338c8vk0x2spKFLBAg7DsREMEVAZeWWmsrVmtbl9pWq63V29o+9+Nd7959arVWa28tLlXbKq51typ1QVSQBAj7EraQQMi+75nz/DHXhCEkJCGThMz1e79e85K55srMGQa/OfM75zpHjDEopZSyl4DBboBSSqmBp+GvlFI2pOGvlFI2pOGvlFI2pOGvlFI2FDjYDeip+Ph4M2rUqMFuhlJKDRk5OTmlxpjhnT02ZMJ/1KhRZGdnD3YzlFJqyBCRg109pmUfpZSyIQ1/pZSyIZ+Ev4jcLiJGROKt+98Wkc0iskVEPheR6V7nLhWRXSKSJyJ3+eL1lVJK9U6fw19E0oDFQL7X4f3AOcaYqcC9wArrXAfwZ+AiYBKwXEQm9bUNSimlescXPf8HgTuB9kWCjDGfG2MqrLtrgVTrz3OAPGPMPmNMM7ASWOaDNiillOqFPoW/iCwDCo0xuSc57TrgXevPKcAhr8cKrGNKKaUGULdTPUVkFZDUyUO/BO7GXfLp6mfPwx3+C06lcSJyI3AjQHp6+qk8hVJKqU50G/7GmEWdHReRqUAGkCsi4C7tbBCROcaYIhGZBjwBXGSMKbN+rBBI83qaVOtYV6+9Amu8ICsr65TWnn7433uYnhbNOeM6vc5BKaVs6ZTLPsaYLcaYBGPMKGPMKNwlnFlW8KcDrwLXGGN2e/3YeiBTRDJExAlcCbzRh/Z367FP9vLp7pL+fAmllBpy+usK3/8E4oD/tb4VtBpjsowxrSJyM/Ae4ACeMsZs66c2ABAcGEBTq6s/X0IppYYcn4W/1fv3/Pl64PouznsHeMdXr9ud4EAHTa1tA/VySik1JPj9Fb7BQdrzV0qpjvw//AMDaGrR8FdKKW82CH8t+yilVEc2CH8t+yilVEf+H/5a81dKqRP4f/hr2UcppU5gg/DXAV+llOrI78M/JMihZR+llOrA78PfPeCrZR+llPJmk/DXnr9SSnnz//APcmjNXymlOvD/8LfKPsac0orQSinll2wR/i4DrS4Nf6WU8rBB+DsAtO6vlFJe/D/8g9xvsalFZ/wopZSH/4d/oBX+2vNXSql2Ngh/LfsopVRHNgh/T89fyz5KKeXh/+HfXvPXnr9SSnn4f/hr2UcppU5gg/DXso9SSnVkg/C3ev5a9lFKqXb+H/5BOtVTKaU68v/w17KPUkqdwAbhrwO+SinVkQ3CX5d3UEqpjnwW/iJyu4gYEYnvcPwMEWkVkW94HbtWRPZYt2t91YbOaM1fKaVOFOiLJxGRNGAxkN/huAP4HfC+17FY4P8CWYABckTkDWNMhS/a0pHToeGvlFId+arn/yBwJ+4w93YL8ApQ7HVsCfCBMabcCvwPgKU+ascJAh0BBAaIDvgqpZSXPoe/iCwDCo0xuR2OpwCXAY92+JEU4JDX/QLrWGfPfaOIZItIdklJySm3MTgwQOf5K6WUlx6VfURkFZDUyUO/BO7GXfLp6I/AfxhjXCJySo0zxqwAVgBkZWWd8lZcwUEOLfsopZSXHoW/MWZRZ8dFZCqQAeRaAZ8KbBCRObhr+iut4/HAxSLSChQC53o9TSrw8ak1v2c8+/gqpZRy69OArzFmC5DguS8iB4AsY0wp7l8KnuNPA28ZY16zBnz/R0RirIcXA7/oSzu64w5/7fkrpZSHT2b79IYxplxE7gXWW4d+bYwp78/XDA50aM1fKaW8+DT8jTGjujj+3Q73nwKe8uVrn0xwkJZ9lFLKm99f4Qta9lFKqY5sEv4620cppbzZJPy17KOUUt7sEf5BepGXUkp5s0f4a9lHKaWOY5Pw17KPUkp5s1H4a89fKaU87BH+QXqRl1JKebNH+AcG0NjahjGnvDacUkr5FduEvzHQ0qbhr5RSYJvw92ziroO+SikFdgl/3cdXKaWOY4/wD9TwV0opbzYJf6vs06JlH6WUAtuEv/b8lVLKmz3CX2v+Sil1HHuEv5Z9lFLqODYJf+35K6WUN5uEv2eev4a/UkqBXcK/veavZR+llAK7hL+n7KOLuymlFGCb8Neyj1JKebNJ+GvZRymlvNkj/HWev1JKHccW4e90aM1fKaW8+ST8ReR2ETEiEu917FwR2SQi20TkE6/jS0Vkl4jkichdvnj97gQ6AggMEC37KKWUJbCvTyAiacBiIN/rWDTwv8BSY0y+iCRYxx3An4ELgQJgvYi8YYzZ3td2dEf38VVKqWN80fN/ELgT8N4m6yrgVWNMPoAxptg6PgfIM8bsM8Y0AyuBZT5oQ7eCgxza81dKKUufwl9ElgGFxpjcDg+NA2JE5GMRyRGR71jHU4BDXucVWMe6ev4bRSRbRLJLSkr60lR3z19r/kopBfSg7CMiq4CkTh76JXA37pJPZ887G7gACAW+EJG1vW2cMWYFsAIgKyurTxvwatlHKaWO6Tb8jTGLOjsuIlOBDCBXRABSgQ0iMgd3j77MGFMH1InIamC6dTzN62lSgcI+vYMeCg7Uso9SSnmcctnHGLPFGJNgjBlljBmFO9hnGWOKgNeBBSISKCJhwFxgB7AeyBSRDBFxAlcCb/T5XfRAcJD2/JVSyqPPs306Y4zZISL/AjYDLuAJY8xWABG5GXgPcABPGWO29UcbOtKav1JKHeOz8Ld6/973fw/8vpPz3gHe8dXr9lRwoIP65taBflmllDot2eIKX9ABX6WU8maf8Neav1JKtbNP+OtsH6WUamej8NcBX6WU8rBX+GvZRymlADuFv67to5RS7ewT/lbP35g+rRKhlFJ+wVbhbwy0tGn4K6WUjcLfs4m7ln6UUso+4a/7+CqlVDv7hH+ghr9SSnnYKPytsk+Lln2UUspG4a89f6WU8rBP+GvNXyml2tkn/LXso5RS7WwT/iHa81dKqXa2Cf9j8/w1/JVSykbh7+n5a9lHKaVsFP6emr/2/JVSyj7hrzV/pZRqZ5/w17KPUkq1s1H464CvUkp52Cb8nZ6ev9b8lVLKPuHvCBCCHKJlH6WUwkbhD+7Sj5Z9lFLKh+EvIreLiBGReOt+lIi8KSK5IrJNRL7nde61IrLHul3rqzZ0x72Vo/b8lVIq0BdPIiJpwGIg3+vwj4HtxpiviMhwYJeI/AOIAP4vkAUYIEdE3jDGVPiiLScTEuSgvlnDXymlfNXzfxC4E3eYexggUkQEd+CXA63AEuADY0y5FfgfAEt91I6TigkPoqKueSBeSimlTmt9Dn8RWQYUGmNyOzz0CDAROAxsAW41xriAFOCQ13kF1rHOnvtGEckWkeySkpK+NpXY8GDKNPyVUqpnZR8RWQUkdfLQL4G7cZd8OloCbALOB8YAH4jIp71pnDFmBbACICsry3Rzerfiw53sLa7t69MopdSQ16PwN8Ys6uy4iEwFMoBcd3WHVGCDiMwBvgf8P2OMAfJEZD8wASgEzvV6mlTg41Nsf6/Ehjspq2saiJdSSqnTWp/KPsaYLcaYBGPMKGPMKNwlnFnGmCLcg78XAIhIIjAe2Ae8BywWkRgRicH9reG9vrSjp+IigmlscVHf3DoQL6eUUqctn8z26cK9wNMisgUQ4D+MMaUAInIvsN4679fGmPJ+bEe7uHAnAGW1zYTF9udbV0qp05tPE9Dq/Xv+fJjOxwIwxjwFPOXL1+6JuAgr/OuaSYsNG+iXV0qp04atrvCNtXr+5Vr3V0rZnK3CPz4iGIDSWp3uqZSyN1uF/7Gev4a/UsrebBX+YU4HwYEBlNVq2UcpZW+2Cn8RIT5Cr/JVSilbhT9YF3ppzV8pZXO2C/+4CKfW/JVStme78I8N1/BXSinbhX98RDCltU24lxxSSil7sl34x4Y7aWp16aYuSilbs2X4Azroq5SyNduFf3z7+j46118pZV+2C//YcPcSDzroq5SyM9uFf5yWfZRSyobh77Wss1JK2ZXtwj/MGUhokEPX91FK2Zrtwh/0Qi+llLJl+MdFOCnV8FdK2Zg9wz/cqbt5KaVszZbhHxseTLnO9lFK2Zgtwz/eKvvo+j5KKbuyZfjHhjtpbnVRp+v7KKVsypbhH2dt5K7TPZVSdmXP8A/XC72UUvZmy/DXlT2VUnbXp/AXkXtEpFBENlm3i70e+4WI5InILhFZ4nV8qXUsT0Tu6svrnyrPEg863VMpZVeBPniOB40x93sfEJFJwJXAZGAEsEpExlkP/xm4ECgA1ovIG8aY7T5oR4/FWSt7atlHKWVXvgj/ziwDVhpjmoD9IpIHzLEeyzPG7AMQkZXWuQMa/qFOB2FOh5Z9lFK25Yua/80isllEnhKRGOtYCnDI65wC61hXxzslIjeKSLaIZJeUlPigqcfEhjt1to9Syra6DX8RWSUiWzu5LQMeBcYAM4AjwAO+bJwxZoUxJssYkzV8+HBfPjVjEyJYu6+c5laXT59XKaWGgm7D3xizyBgzpZPb68aYo8aYNmOMC3icY6WdQiDN62lSrWNdHR9w3zsrg6LqRl7fNCgvr5RSg6qvs32Sve5eBmy1/vwGcKWIBItIBpAJfAmsBzJFJENEnLgHhd/oSxtO1dmZ8UxIimTF6n24XLrMg1LKXvpa879PRLaIyGbgPOCnAMaYbcCLuAdy/wX82PqG0ArcDLwH7ABetM4dcCLCTeeMYU9xLR/uLB6MJiil1KCRobK4WVZWlsnOzvbpc7a0uTj39x8zIjqEl26a79PnVn1jjGFPcS3jEiMHuylKDVkikmOMyersMVte4esR5Ajg+oUZrD9QQc7B8sFujvLy5f5yFj+4mu2Hqwe7KUr5JVuHP8C3zkgjOiyIp9YcGOymKC/55fUAHK5sGOSWKOWfbB/+Yc5AFmYOZ0th1WA3RXnxXH1dXq8X4inVH2wf/gAjY8MorGygtU3n/J8uyq3wr9AlOJTqFxr+QHpsGG0uw+HKxi7PWbOnlJ+/lKu7fw2QUuvqa+35K9U/NPyB9LgwAA6W13V5zqsbC3g5p4DdR2sHqlm25ll3SXv+SvUPDX9gpCf8y+q7PMcz62T1bt+uMaQ6V2Ytt11e1zLILVHKP2n4A4mRITgDA9pnmHTU1NpGXrG7x796j4b/QPD0/Cu17KNUv9DwBwIChLSYUPK76PnnFdfS6jKkRIeybn85Dbrxe78yxrSHv9b8leofGv6WkXHhHOyi5+8p+dywMIPmVhfr9pcNZNNsp6aplWZr5pXW/JXqHxr+lvTYMPLL6jqdzbP9SDWhQQ6+eUYawYEBfOJndf+axhbuemUzR6pOjwuqyq1ef2pMKJUNLbTpwntK+ZyGv2VkXBh1zW2dbu24/XA1E5IjCXMGMnd0nN8N+j77xUFWrj/EW7lHBrspwLHB3syECIyBqgYd9FXK1zT8LV3N+DHGsONINZOShwHupaD3ltRR6CfLDjS2tPHXzw4AsPFQxeA2xlJq9fwzrUXdyrX0o5TPafhb0mPd4Z/fYa5/YWUD1Y2tTBrhDv9zxrl3FPOX3v/LOQWU1jYxMi6MDQcrB7s5wLGZPmOHRwBQoYO+Svmchr8lNSYMEcgvO75H7xns9fT8xyZEkBwV4hfh39rmYsXqfUxPi+baM0dRVN14WtT9PXsrj0mwwl97/kr5nIa/JSTIQdKwkBOu8t1+pBoRGJ/kLkGICGdnDmdNXumQXwvo3a1F5JfX88NzRjNrZAwAG/MrB7dRuBd1iwwJJCkqBNCev1L9QcPfi3vGz/E1/x1HqsmIDyfMGdh+bO7oWGoaWzlQ1vVyEF1pbXPx5f5yGlsG91oBYwyPfbKX0cPDWTwpiUnJw3AGBrDh4ODX/Utrm4iPCCY2zAnoVb5K9YfA7k+xj/TYMD7uUM7ZfqSa6anRxx3zfAvYWVTD2ISe7TRVXN3I818e4vkv8ymqbuQXF03gB+eM8Um7e6qlzcXrmw6zZk8Jn+8to7imid9dPpWAAMEZIExNiWLjocoBbVNnyuuaiQt3Eup0EBwYoD1/pfqB9vy9jIwLo6SmifrmVsA9xfBQeUP7YK/HmOEROAKEXUU1PXrekpomLvjDJzy4ajfjkiJJGhbCl/sHfuew97YV8fOXclmTV8rc0XE8cMV0rpid1v74rPRothRW0dw6uOWsstpm4iLcvf7YcKfO9lGqH2j4e0mPCwfgULl70HPnEfdg78Tk48M/JMjBqLgwdvYw/LMPlFPT2MrfrpvDs9+fw8LMeDbkVwz48tDbDlcT5BA+v+sC/rR8JpfPTiUgQNofn5keQ3Ori+1HBnfrxLK6JmLDgwGICXPqgK9S/UDD38vIWM9cf3ctf4cVgpM7hD/AhKRhPe75byqoxOkIYE5GLACzRsZQUd/C/tLejxn0xc4j1YwZHoEzsPOPfWZ6NAAb8wev7t/mMpTXNRPv1fPXso9Svqfh7+XYXP96CirqefKz/aREhzI8MviEc8cnRZJfXk9dU2u3z5t7qJKJI4YRHOgAYLY1s2bDAM+s2VlUc8K3GG/JUaEkR4UM6oyfyvpmXAbiwt3hHxPupKJeB3yV8jUNfy/RYUFEhgSydl8ZV65YS1V9C49ePQsROeFcz6Dv7qMn7/23uQxbCqqYkRrVfmzs8AgiQwLJGcCZNVX1LRypamxvd1dmpkezYRB7/p7lNeIi3L9wY8OCtOavVD/Q8PciIoyMC2PVjmJqGlt57oZ5TOsw08djQg/Df29JLXXNbUxPO/Y8AQHCzPSYAS2v7Cxyl7AmdBP+s9JjKKhooLim6y0t+5Nn+0bPgG9MuJOqhpYhf02FUqcbDf8OxicOIyo0iH9cP5cpKVFdnpcWE0aY09HtoO8ma+qkd/iDe2bNrqM1VDcOTEnD086TlX3gWN1//f7B6f17evnxEccGfAEqT5PF3WoG6PNSqr/1KfxF5B4RKRSRTdbtYuv4hSKSIyJbrP+e7/Uzs63jeSLysHRWUxlE935tMh/9/NyTBj+4e++ZiZHdDvrmHqokMiSQDGsmkcfskTEY4358IOwsqiYmLIiETsYvvE1NiSY1JpT73981KJvWeNb18a75w+mxxMNz6/LJ+u9VFFUNzrcipXzJFz3/B40xM6zbO9axUuArxpipwLXA37zOfxS4Aci0bkt90AafCXMGEmsFTncm9CT8CyqZnhp93JRKgBlp0YgwYHX/nUU1jE+K7HT8wpszMID7Lp/G/tI67n9/V6fntLS5WPbIGn73r50+b2dZbRMiEG31+I9d5Tu44d/Y0sZD/95NU6uLT3UrT+UH+qXsY4zZaIw5bN3dBoSKSLCIJAPDjDFrjXuS+7PA1/qjDQNhfFIkZXXNlNQ0dfp4Y0sbO4/UMD3txG8RkSFBjE+MHJDwd7kMu4pqmJB08pKPx/yx8Vw9L52nPtvP+gMnXoy2cv0hcguqeG5dPk2tvv12UFrXTGyYE4f1yzImPAhg0Gf8vLD+EEerm3A6Avh8r+7kpoY+X4T/zSKyWUSeEpGYTh6/HNhgjGkCUoACr8cKrGOdEpEbRSRbRLJLSk6/3pZn5kxXvf9th6tpdZkTlofwmJkew6b8Slz9vFPVoYp66pvbmJjcs6UoAH5x0URSokO58+XNx5V/aptaeWjVbhIig6lqaOGjncU+bWtZbVP7YC/Q/i1sMOf6N7a08b8f5zEnI5bFkxNZk1c64BfoKeVr3Ya/iKwSka2d3JbhLuGMAWYAR4AHOvzsZOB3wA9OpXHGmBXGmCxjTNbw4cNP5Sn61bE1fjq/ItZTz5/RYbDXY/bIGGqaWtlTXNsfzWu344j7l9P4Hvb8AcKDA9vLPzc/t6F9yYu/fLKX0tpmHrtmNgmRwbyyodCnbS2rbSYu/Ni4RMxpUPbx9PpvW5TJgrHxlNQ0kdfPn5lS/a3b8DfGLDLGTOnk9rox5qgxps0Y4wIeB+Z4fk5EUoF/At8xxuy1DhcCqV5Pn2odG5LiI4KJj3B22fPPLagkOSqEhGEhnT4+y5pZ82UnpRVf2lVUgwiMS4zo1c/NHxvPby6bwke7ilm+Yi1bC6t4/NN9fGX6CGalx/C1mSl8tLPYp8FcVtd8XM8/JMhBmNPhswHf21/M5Y6Xcnt8vnev/8zRcZw1Nh6ANXmlPmmPOn28s+UIX31kjW32jO7rbJ9kr7uXAVut49HA28BdxpjPPCcYY44A1SIyz5rl8x3g9b60YbCNT4pkVxdz/XMPVXZZ8gHIiA9nQlIkf/xgd79uorKzqJpRcccvS91T3547kse/k8Xuo7V89ZE1uFxw55LxAHx9VgqtLsObuYe7eZae8yzn7C0mzEm5D8o+jS1tvLX5MK9vOtzjKZsv5RS09/pFhLTYMNJjw/hMw9/vfLG3jM0FVRwqr+/+ZD/Q15r/fda0zc3AecBPreM3A2OB//SaBppgPfYj4AkgD9gLvNvHNgyq8YnD2H205oTeQmltEwfK6k+Y3+9NRHjkqlk0trTx439s6LfVNHcW1XR7cdfJXDAxkZU3ziMhMoSbzh1DmrUMxoSkYUxKHsarGwq6eYaeaW51UdPYesJsq5jwIJ/0/HMOVtDU6qK5zcWHPRirMMbw7OcHmJoSxZmj49qPnzU2nrX7yvXCMz/j2ZfbLiW9PoW/MeYaY8xUY8w0Y8xXrZ49xpj/NsaEe00BnWGMKbYey7bKRmOMMTebIT5yNj0tisYWFz97cVN7QG07XMUVj31BgMDCzPiT/vzYhAju+8Z0NuRX8j/v7PB5++qb3ZvOdLesQ3emp0Xz+V3n87MLxx13/OuzUsgtqCKvuGeL3J1MefvSDh3CP8w36/t8uqeUwAAhLtzJe9uKuj1//YEK9hTXcvW89OOmyJ41No7aplZyC6r63CZ1+iiscId/f4/BnS50M5c+unTaCPaX1vHIh3l8llfKZTNTeOaLg8SEBfHcDfO6vVgM4JJpyWzIz+DJNfuprG9mbEJEe++6uLqJktom5o+J49zxCd0804n2HK3FGHo8zfNkOl6rAPDVGSP47bs7eWVDIf+xdEKfnr99aYfw48s+seFO8n3wVXxNXgmz0mMYlxTBKzmFNDS3Eep0dHn+39ceJDIkkK9MH3Hc8flj3L/QP88rbV+kTw19h7vo+Te2tPHRzmKWTknq9jqZoUSXd+gjR4Bw26JxvHnLApKiQnj80/3MHxPHOz9ZyDyvUkF37rpoApfNTGFNXhn3v7+bW1du4taVm/jNOzt44tN9XP9MNjkHez8wvKXQ3TvtzTTP3kiIDOGCCQk8ty6/z0tVlLUv7XBiz7+vg8rldc1sO1zNWWPjWTo5mYaWNlaf5GKt0tom3t16hMtnpZ4wVhIb7mRS8jAd9PUjVQ0t1Fgr9Hb8FvvaxkJ++I8Ng7rgYX/Qnr+PTEwexms/OovNhVXM6OSK3u4EOQJ48FszAGhobqOgoh4RIWFYMMbAskfWcNPfN/D2LQu6nD3UmQ93FpMWG9q+XHV/+MkFmVz6pzU889kBbrkg85Sfx9Pz6riEdmy4k5rGVlraXAQ5Tq2/8vneUoyBBZnxTEuNIjosiH9tLWLJ5KROz38x+xAtbYar56V3+viCzHj++tl+qupbiAoLOqU2DYaq+hZue2Ejv7xkEmMTejf7y595Sj4JkcHkFddijGnv5XuWOF+7r5zZI2MHq4k+pz1/Hwp0BDArPabXwd9RqNNBZmIkYxMiGBYSRFRoEH+5JovaxlZ+2IuB4frmVtbklXLhxP79ujolJYpFExN5Ys3+PvX+N+ZXEB0WRFrM8b+oYnxwodeaPaVEhgQyPTWKIEcAiyYmsmrH0U7/LttchufW5TNvdGyXezQvnZJEm8twyZ8+Ze2+oXPF77r9ZXy0q4R739re5TlV9S385ZO9/OGD3Tz92X7eyD1M1WmysF5/8XQ8zh43nLrmNo54rd/kWZxx3SBsvdqfNPyHiPFJkfz+imnkHKw46f+43lbvLqW51cWiSb0fK+it2xZlUtXQwjOfHTjl58g5WNHpL88Yq2ddUXdqAWSM4dM9pZw5Oo5A65vDRVOSqGls5fO9J5ZuPtldTEFFA1fPG9nlc85Kj+Glm87EESAsf3wt//3WdhpbBn4hvN7yXJPyye4S1uw5/r1XN7bw0Ko9LLjvQ3777k7+9OEe7nlzOz95fiNXP7Fu0Pd27k+emT7njHNfTOqp+9c2tbK7uIbAACHngH/N8NLwH0IunTaCG88ezd/WHuS1jd1fG7dqx1GiQoM4Y1T/f1Xta++/oq6ZvSV1nQ6g9nVxt4Nl9RRWNhw38+qssfGEOx28s+XIcecWVzfyq39uJSU6lMWTOi8JecweGcu7ty7k6rkjeWLNfpb8cTWfn+bjADuP1jAiKoSU6FB+++6O9qVFNuZXcN7vP+bBVbuZPyaOd29dSN5vLibnV4t44IrpbCms6nKhP39QWNmAMzCgfZzOE/5bCqowxj2xoa65bdD3t/YlDf8h5o4l45kzKpZfvLqFPSfZSKbNZfhwZzHnjR9+ynXy3vL0/p/8dH+vf9YzmNZZ+I+Kdy+Hvbmg8pTa9akVyJ6rc8F95fBXpo/gxewCHlq1B2MMDc1t3PBsNhX1Lfzlmtld7nXsLcwZyL1fm8JzN8xFgKueWMedL+eett8CdhXVMDklijuWjGfb4WreyD3MJ7tLuOrxdYQHB/LmzQv4yzVZTEwehiNAiIsI5vLZqXx7bjorVu9j9e7Tb40tXyisaCAlOpT4CCfRYUHt0z1zrX9zN549GoB1+3xf+nG5DC9mH+JfW7uffuxLGv5DTJAjgD9dNZPw4EBu+ntOl3sIb8ivoLyumUWTEgesbVNSorhkajIPf7iHF9cf6tXPZh+sIDBAOr0iekR0KFNTono0N78za/aUkBIdSkb88Xsq/NeyyXx9ZgoPrtrNT1/YxO0vbWJzYRUPL5/Zoym63uaPiedft53NTeeM4cXsAp5bl39Kbe1PTa1t7C+tY0JSJF+dPoLJI4bx67e2c93T6xkVH87LPzyTqamdv+9fXTKJzIQIfvZibvuUXH9SWOkOfxEhMyGCvVb4b8qvZGRcGBOShjEqLszndf+9JbV8a8UX3PnyZm55fgPbDg/ctSMa/kNQ4rAQHl4+g/2lddz09xxyDpafsMrkqu1HCXJIew1zoNx/xXQWZg7nzlc28/RnPf8GkHOwgskjhnU5737J5EQ25FdytLp3G6m0trn4fG8ZC8bGnzDoHRzo4IFvTufni8fx2qbDvLOliLsvmsiFp/gLMyTIwV0XTWBi8jDe2uy7JS98Ja+4ljaXYXxSJAEBwt0XT6S8rpnZI2N44QfuK7i7Eup08KerZlLd2MJdr2z2u1VNCysbGBHtfv9jEyLYY0339OzHATA3I471B8p7vQrv65sKO1388dkvDnDRQ5+yq6iGXy+bTEyYk5++sGnAvjVq+A9R88fE819fnUzOwQouf/QLLvjDJ/zlk73t9fYPth9l3ug4IkMGdhpiqNPB49+ZzeJJidzz5nZ+8eoWXso+xPoD5V3OGGludZF7qPKk0+iWTnHX39/ffrRX7dlcWEVNYysLurjSWkS4+fxMnvhOFv/n0klcvzCjV8/fmUunJbMhv7J9EPF04Rns9Sz1cdbYeN69dSHPXjeHYT34dzIhaRh3LB7Pqh3FvN1hrGQoa2xpo6SmiZRo9yyzsQmRVNS3sONINUeqGttX5Z2TEUtVQ0uXa3l15khVA7eu3MTyFWvZX1rXfvzlnAL+8/VtLBgbz6qfncN3zhzFfd+Yxu6jtTwwQGMrGv5D2DVnjmL9Lxdx3zemERvm5Lfv7mT+bz/krlc2s6+0jsUDWPLxFhzo4M/fnsU3s1J5MfsQd7y8mSse+4Izf/tvHl+9j5YOMya2H6mmqdV10qtlxyZEMnp4OO/1si66Zk8pIsfX+zuzaFIi1y3I8MmU2K9Mc18R/PZp1vvfVVSDMzCAUV5bik5MHkZwYNdXOXf0vbNGMTUlinve2E7VIG+w4yuebTlTYkIB2q9/eDnHvWbVdK/wB/iyF6Wff+9wryHV0mb47l+/pLS2ic/ySrnrlc2cNTaOx66e3X7dzrnjE7h6XjpPrNnPFwOwYZCG/xAXHhzIN7PSePmH83nrlgWcNyGBF7MPIeJekG2wBDkCuO8b09l571I+/vm5/PW7ZzBvdBy/eWcHlz685rgdwjy7mWWNOvlSCUsmJ7F2XxmVvZjvv2ZPKZNHDOvx1py+kB4XxrTUKN7M7X3vuKKuuc9XSndlR1ENY4dHtE93PRWBjgB++/WpVNQ398taVIPB8w0tJfr48H9tYyGBAcLkEe6lUdJiw0iJDmXd/p4H86odRxkZF8az183haHUj1z71JTf9LYcxwyN49OoTJxXcffFERsWF8+PnNpDdz0u9a/j7kSkpUfxp+Uw+ueM8Vt4wjxHWP+bBFOQIYFR8OOdNSODJa7NYcc1saptaWb5iLR/vcveKcg6WkxIdSmI3Vy4vnZxEq8u096a6U9vUyob8ChZmDvxGQJdOS2ZLYRUHvL7q98TVT67juqfX90ubdhVV92l1V48pKVFcvzCDF7IPdXqdxFDjubrXE/4jokIIdzooq2tmYvIwQoKOfTOakxHLl/tPHGPrTF1TK5/nlbFoYiKz0mN46MqZbD9STajTwVPfO6PTUluYM5CnvnsGUaFBXPX4Ov650Tcr5nZGw98PpcWGMbcX6woNFBFh8eQk3r1tIeMSI/nRPzaQe6iSnIMV3fb6AaalRpEcFdLjWT9r95bR6jIs7Kbk0x8u8ZR+elEb319ax7bD1aw/UOHzvZ0r65s5Wt3U59VdPW67YBwj48L4yfObhvwSyAWVDYhAUpS78yEijLF6/x33356TEUtpbTPLH1/LrSs38tt3dnRZ/vp0TwnNbS4WWd/Al0xOYuUN83jlh/Pbf9F0JiM+nH/+aD6zR8bw0xdyuf+9Xf2y1auGvxpww0KCePr7ZxAb7uSaJ9dxtLqpR6tjighLJifxye6S9m0lT2ZNXikhQQHM7sEvFl9LiQ5lVnp0rza68fxSC3M6eGpN76+VOJmdRZ6tPH0T/qFOB09emwUYlj++lr0lQ/cXwOHKBhIjQ44rwXhKPzPSjv+3s2RyEpdOS6alzbDpUCV/Wb2Pl3I6n9b8wfZihoUEHtexmTs6rn3F3pOJDnPyzPfn8K2sNFbtOEpjq+9nAGn4q0GREBnCs9+f015/7unSyIsnJ9LU6uKxj/d2+9X70z0lzMmI69WApi9dOm0EO4tqetwzfm9bEVNShnHNmSN5d+sRn+4odWymT9+X9vYYmxDJ8zfMw+UyLF+xlt29mAVzOimsODbN0yPTWtNpRoeef2y4k0eumsUrP5zPJ3ecx4SkyE6/iba5DB/tKua8CQmnfJGlMzCA/3f5VF686cxT2oWvOxr+atCMHh7Bs9+fw41nj+5xKM3LiGPZjBE8/GEed/9zywkzhzyOVDWwt6RuUEo+HpdMSyYwQHj0473dnnu0upGN+ZUsmZTEd+ePIkCEv/ZgnaRnPj/A0j+u7nZsYWdRDVGhQSQOCz7peb2VmRjJ8zfOo81lWPzgaub9z7+5/plsnv5s/2l7lfMfPtjN959e315KKaxsIKXDYoJXnpHG/VdMZ8zwk698unhyEtkHKyipOf7Ct42eiyz7OOlCRHo0DfdUaPirQTUlJYq7L56Io4croQYECA9+cwY/Pm8Mz395iOueyaag4sQe8qfWomULxw1e+CcOC+EH54zmlQ0F3a7547l+YemUJJKjQrl0WjIvrD/5Hgm5hyq5963t7CyqYfnja8kvO/b3UFXfwhd7y9q3F91VVM34pMh+Wd11XGIkr998Fr+6ZCJzR8eyr7SWe97czgUPfMLrmwpxuQxVDS3kHCzn413Fg/pLYceRah75cA8f7izm9Vx3245UNZxQg48Jd/KN2and/n0tnZyEMe5ZPd4+2HGUwADhnPEDP9mgp3Q9fzXkBAQIdyyZQHpsGHf/cysLfvcR4xMjOW9CApkJEcSEB/HOliMMjwxmfGL/bGLTU7ecn8nbm4/wy9e28u6tC4+bOeLt/W1FjI4Pb681X7dgNK9tOszTnx3glvPHnhBCdU2t3LpyIwmRwTzwzRn88B85LH98LY9dPZv3txfx9GcHqGlqZWZ6NL+3Lh76+qyUfnufqTFhXL9wdPv9z/JK+c3bO7h15SZ+9dpWahqPjdGEOR2cPyGBc8cnEBwYgMsYmlpdFFY0cKi8npLaJjITIjljVAzT06JpcxnK6pqprG8mcVgIGfHhXf49nowxhl+/uZ2o0CCSokK5/73dzE6PpaXNtM/x762JyZGkxYby3rYils9Jb38dz0WW/dVr9wUNfzVkfeuMdOaNjuP9bUf5cGcxT3y6j1avWRGXz+q+59bfQoIc/OayqXz7iXX8+aM8bl88/oRzPL306xeObm/v1NQoFmbG84cPdvNG7mG+lZXGJdOSSY4KQUS4541tHCyv5/kb5jFvdBx/v24u335iHV95ZA0icPGUZOZkxPLgqt1c9NCntLQZnw329sRZY+N565YFvLapkC/3l5MRH05mYgSOgADe21bEe1uLeGvz8TOhRGBEVCix4U7+se4gT3WxPEiAQHpsGCPjwkmNCSU1JowJyZHMSos56cY67207yhf7yrh32WTGJERw1ePr2q9VSInu+QZJx7dZWDIpiWe/OEhNYwuRIUG8ufkI+0rquH7B6O6fYBDJUFmjIysry2RnZw92M9RprL65lZKaJsrrmqlsaGFGanT7RjCD7WcvbOLNzYe55fxMwpwOgoMcjEuIYNbIGN7afJifvpDLP380n5npxwa+65tbeTP3MCvXH2rfTSoiOJC02DB2HKnmx+eN4Y4lx/ZN3na4ipdzClg+J51x1jee4ppG/vO1bby/vYi3f7KQicm+G/Dti9Y2FwfK6jDGHaBORwCJUcHtg/PNrS62Ha5ia2EVwUEO4iOcRIUGcbiykT3FteQV13CovIGCinoqvKZajhkeTuKwEIwBlzFkxIdz2cwUpqdFs/jB1YQGOXj7JwsIdATwvb9+yUe73KuUvnfb2af8y3H9gXKueOwLHl4+k/lj4rjwD5+QHhfOKzed2acL6nxBRHKMMVmdPqbhr1T/K6tt4uuPfs7BsuPHJyKDAwkLdgfeF3dd0OUucLuP1rBuXxl7S+rIK64lKiyIP35rRo9mkhhjqG5oHVLbTfZGdWMLWwur2HCwgo35lVQ1tBBgfYPaeriK+uY2okKDqGpo4e/XzW1f52lXUQ0XPbQal4Et9yw+5XWw2lyGuf+zirmj4zDGsGp7MW//ZAGZg1xyhJOHv5Z9lBoAcRHBfHT7uTS3uWhqddHY0sbG/Ar3jlp5pXxzdtpJt/8clxjZ3pvvLRHx2+AH93Uj88fEM3/MiYP79c2tvLetiFc3FDIqLvy4Bf7GJ0Vy5Zx0Vu8u6dMCiI4A4cJJibyYXUCby3DHkvGnRfB3R3v+SinbanMZGlraiAjuWz/4o13FfO+v65maEsU/fzR/0Ms9HtrzV0qpTjgCpM/BD7BgbDzXL8jgqrnpp03wd6dPrRSRe0SkUEQ2WbeLOzyeLiK1IvJzr2NLRWSXiOSJyF19eX2llDodBDkC+NWlkxjdzUVhpxNf9PwfNMbc38VjfwDe9dwREQfwZ+BCoABYLyJvGGO2+6AdSimleqjfvp+IyNeA/cA2r8NzgDxjzD5jTDOwEljWX21QSinVOV+E/80isllEnhKRGAARiQD+A/ivDuemAN5L4BVYxzolIjeKSLaIZJeUlPigqUoppaAH4S8iq0Rkaye3ZcCjwBhgBnAEeMD6sXtwl4P6tM6rMWaFMSbLGJM1fPjpu0aGUkoNNd3W/I0xi3ryRCLyOPCWdXcu8A0RuQ+IBlwi0gjkAGleP5YKFPamwUoppfquTwO+IpJsjPEs0HEZsBXAGLPQ65x7gFpjzCMiEghkikgG7tC/EriqL21QSinVe32d7XOfiMwADHAA+MHJTjbGtIrIzcB7gAN4yhiz7WQ/o5RSyvf6FP7GmGt6cM49He6/A7zTl9dVSinVN0NmeQcRKQEO9uJH4oGT76Dhf+z4nsGe79uO7xns+b778p5HGmM6nS0zZMK/t0Qku6s1LfyVHd8z2PN92/E9gz3fd3+956GxCIVSSimf0vBXSikb8ufwXzHYDRgEdnzPYM/3bcf3DPZ83/3ynv225q+UUqpr/tzzV0op1QUNf6WUsiG/C3+7bBYjImki8pGIbBeRbSJyq3U8VkQ+EJE91n9jBrutviYiDhHZKCJvWfczRGSd9Zm/ICLOwW6jr4lItIi8LCI7RWSHiJzp75+1iPzU+re9VUSeF5EQf/ysrRWRi0Vkq9exTj9bcXvYev+bRWTWqb6uX4W/12YxFwGTgOUiMmlwW9VvWoHbjTGTgHnAj633ehfwb2NMJvBv676/uRXY4XX/d7hXkR0LVADXDUqr+tdDwL+MMROA6bjfv99+1iKSAvwEyDLGTMG9HMyV+Odn/TSwtMOxrj7bi4BM63Yj7pWVT4lfhT822izGGHPEGLPB+nMN7jBIwf1+n7FOewb42qA0sJ+ISCpwCfCEdV+A84GXrVP88T1HAWcDTwIYY5qNMZX4+WeNe/mZUGtByDDcy8b73WdtjFkNlHc43NVnuwx41ritBaJFJPlUXtffwr9Xm8X4CxEZBcwE1gGJXiutFgGJg9WufvJH4E7AZd2PAyqNMa3WfX/8zDOAEuCvVrnrCREJx48/a2NMIXA/kI879KtwLwnv75+1R1efrc8yzt/C33asXdNeAW4zxlR7P2bc83j9Zi6viFwKFBtjcga7LQMsEJgFPGqMmQnU0aHE44efdQzuXm4GMAII58TSiC3012frb+FfiI02ixGRINzB/w9jzKvW4aOer4HWf4sHq3394CzgqyJyAHdJ73zctfBoqzQA/vmZFwAFxph11v2Xcf8y8OfPehGw3xhTYoxpAV7F/fn7+2ft0dVn67OM87fwX4+1WYw1C+BK4I1BblO/sGrdTwI7jDF/8HroDeBa68/XAq8PdNv6izHmF8aYVGPMKNyf7YfGmG8DHwHfsE7zq/cMYIwpAg6JyHjr0AXAdvz4s8Zd7pknImHWv3XPe/brz9pLV5/tG8B3rFk/84Aqr/JQ7xhj/OoGXAzsBvYCvxzs9vTj+1yA+6vgZmCTdbsYdw3838AeYBUQO9ht7af3fy7wlvXn0cCXQB7wEhA82O3rh/c7A8i2Pu/XgBh//6yB/wJ24t4h8G9AsD9+1sDzuMc1WnB/y7uuq88WENwzGvcCW3DPhjql19XlHZRSyob8reyjlFKqBzT8lVLKhjT8lVLKhjT8lVLKhjT8lVLKhjT8lVLKhjT8lVLKhv4/Jbb1x0UZ2gYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_loss('cache/models//student_epoch_100.npy')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 试验-2\n",
    "加了个硬损失loss_kd_h = self.criterion(self.student(gen_img.detach()), pseudo_labels)\n",
    "\n",
    "loss = loss_onehot * self.oh + loss_information_entropy * self.ie + loss_active * self.a + loss_kd + loss_kd_h"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_loss('cache/models/student/student_epoch_200.npy')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# test network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "from torch.autograd import Variable\n",
    "import torch.nn.functional as F\n",
    "from torchvision.datasets.mnist import MNIST\n",
    "from torchvision.datasets import CIFAR10, CIFAR100, ImageFolder\n",
    "from torchvision.datasets.imagenet import ImageNet\n",
    "from torch.utils.data import DataLoader\n",
    "import torchvision.transforms as transforms\n",
    "import numpy as np\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "b616bc69f5e56e869b6afa9b75bee44fb0b9cfffce48900ded2d9beddfe2e77a"
  },
  "kernelspec": {
   "display_name": "Python 3.6.13 64-bit ('torch-1.7': conda)",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.13"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
